import pyatspi

def find_button_and_click(component, target_name):
    """
    递归查找指定名称的按钮并执行点击操作。
    :param component: 当前组件
    :param target_name: 目标按钮的名称
    :return: 是否找到并点击了按钮
    """
    # 检查当前组件是否是按钮并且名称匹配
    if component.getRoleName() == 'push button' and component.name == target_name:
        print(f"Found button: {component.name}")
        # 执行点击操作
        component.do_action(0)  # 0 通常是按钮的默认操作（点击）
        return True

    # 如果当前组件有子组件，递归查找
    for child in component:
        if find_button_and_click(child, target_name):
            return True

    return False

def search_for_button_in_desktop(target_name):
    """
    在桌面中查找指定名称的按钮并执行点击操作。
    :param target_name: 目标按钮的名称
    :return: 是否找到并点击了按钮
    """
    # 获取桌面对象
    desktop = pyatspi.Registry.getDesktop(0)

    # 遍历桌面上的所有应用程序
    for app in desktop:
        # 遍历应用程序中的所有窗口
        for window in app:
            # 递归查找按钮
            if find_button_and_click(window, target_name):
                return True

    print(f"Button '{target_name}' not found.")
    return False

# 调用函数，查找名为 "Click Me" 的按钮并点击
search_for_button_in_desktop("Submit")
